开发者中心
API 概览
API 详情
错误码列表
Class
Class 概览
Class 详情
Protocl
Protocol 概览
Protocol 详情
Enum
Enum 概览
Enum 详情
API 详情
iOS 直播 ToB 1.0
更新时间:2023-10-10 11:53:05

KRtcEngine

方法

initEngineWithConfig
(instancetype _Nonnull) initEngineWithConfig: (KRtcEngineConfig* _Nonnull) config  delegate: (id<KRtcEngineDelegate> _Nullable) delegate;

创建 KRtcEngine 实例。

Declared in KRtcEngine.h

支持版本: 6.0.0 及以上。

参数信息
参数名 类型 描述
config KRtcEngineConfig* _Nonnull KRtcEngine 实例的配置,详见 KRtcEngineConfig。
delegate id<KRtcEngineDelegate> _Nullable delegate对象,详见 KRtcEngineDelegate。
接口详情
  • 详情描述: KRTC Native SDK 只支持每个 app 创建一个 KRtcEngine 实例。

  • 调用时机: 请确保在调用其他 API 前先调用该方法创建并初始化 KRtcEngine。

  • 注意事项: KRtcEngine 类的所有接口函数,如无特殊说明,都是异步调用,对接口的调用建议在同一个线程进行。

  • 使用限制:

返回值:

  • 方法调用成功,则返回一个 KRtcEngine 对象。
  • 方法调用失败,则返回null。
destroy
(void) destroy;

销毁 KRtcEngine 实例。

Declared in KRtcEngine.h

支持版本: 6.0.0 及以上。

接口详情
  • 详情描述: 该方法释放 SDK 使用的所有资源。有些 app 只在用户需要时才进行实时音视频通信,不需要时则将资源释放出来用于其他操作,该方法适用于此类情况。调用 destroy 方法后,你将无法再使用 SDK 的其它方法和回调。如需再次使用实时音视频通信功能,你必须重新调用 create 方法创建一个新的 KRtcEngine 实例。

  • 注意事项:
    该方法为同步调用,需要等待 KRtcEngine 实例资源释放后才能执行其他操作,所以我们建议在子线程中调用该方法,避免主线程阻塞。
    此外,我们不建议在 SDK 的回调中调用 destroy,否则由于 SDK 要等待回调返回才能回收相关的对象资源,会造成死锁。

  • 使用限制: 如需在销毁后再次创建 KRtcEngine 实例,需要等待 destroy 方法执行结束后再创建实例。

static
getSdkVersion
(NSString* _Nonnull) getSdkVersion;

查询 SDK 版本号。

Declared in KRtcEngine.h

支持版本: 6.0.0 及以上。

接口详情
  • 详情描述: 查询 SDK 版本号,当前的 SDK 版本号,格式为字符串。例如:6.0.0。

  • 调用时机: 该方法在加入频道前后都能调用。

  • 注意事项:
    该方法为同步调用。

返回值: 返回当前的 SDK 版本号。

setParameters
(int) setParameters: (NSString*) parameters;

通过 JSON 配置 SDK 提供技术预览或特别定制功能。

Declared in KRtcEngine.h

支持版本: 6.0.0 及以上。

参数信息
参数名 类型 描述
parameters NSString* JSON 字符串形式的参数。
接口详情
  • 详情描述: 通过 JSON 配置 SDK 提供技术预览或特别定制功能。如果JSON解析失败会返回KWarningCodeSetParametersParseFailed。

返回值:

  • 0: 方法调用成功
  • <0: 方法调用失败。
startPushByToken
(int) startPushByToken: (NSString* _Nonnull) token  channelId: (NSString* _Nonnull) channelId  streamUrl: (NSString* _Nonnull) streamUrl;

开始直播推流。

Declared in KRtcEngine.h

支持版本: 6.0.0 及以上。

参数信息
参数名 类型 描述
token NSString* _Nonnull 在 app 服务器端生成的用于鉴权的 Token。详见使用 Token 鉴权。
channelId NSString* _Nonnull 标识通话的频道名称,长度在 64 字节以内的字符串。以下为支持的字符集范围(共 89 个字符):

  • 26 个小写英文字母 a-z

  • 26 个大写英文字母 A-Z

  • 10 个数字 0-9

  • 空格

  • "!", "#", "$", "%", "&", "(", ")", "+", "-", ":", ";", "<", "=", ".", ">", "?", "@", "[", "]", "^", "_", "{", "}", "|", "~", ","
streamUrl NSString* _Nonnull 推流地址,需要业务层根据指定的规则生成,比如:rtmp://sample.com/app_name/stream_name?ksSecret=1234224247ebd33b74e02234240695d&ksTime=634910c4。
接口详情
  • 详情描述: 该方法可以向指定的地址推直播流。

  • 相关回调:

    • 开始推流后,本地会触发 onPushStreamStateChanged 回调;可以根据该回调给出的状态和原因做后续处理。

返回值:

  • 0(KErrorCodeCommonSuccess): 方法调用成功。
  • < 0: 方法调用失败。
stopPush
(int) stopPush: (NSString* _Nonnull) channelId;

停止直播推流。

Declared in KRtcEngine.h

支持版本: 6.0.0 及以上。

参数信息
参数名 类型 描述
channelId NSString* _Nonnull 标识通话的频道名称,长度在 64 字节以内的字符串。以下为支持的字符集范围(共 89 个字符):

  • 26 个小写英文字母 a-z

  • 26 个大写英文字母 A-Z

  • 10 个数字 0-9

  • 空格

  • "!", "#", "$", "%", "&", "(", ")", "+", "-", ":", ";", "<", "=", ".", ">", "?", "@", "[", "]", "^", "_", "{", "}", "|", "~", ","
接口详情
  • 详情描述: 该方法可以停止指定频道内的直播流。

返回值:

  • 0(KErrorCodeCommonSuccess): 方法调用成功。
  • < 0: 方法调用失败。
setConnectRetryCount
(int) setConnectRetryCount: (int) count;

设置推流端重连次数

Declared in KRtcEngine.h

支持版本: 6.0.0 及以上。

参数信息
参数名 类型 描述
count int 重连次数
接口详情
  • 详情描述: 当 SDK 与服务器异常断开连接时,SDK 会尝试与服务器重连,通过此函数设置 SDK 重连次数。

返回值:

  • 0(KErrorCodeCommonSuccess): 方法调用成功。
  • < 0: 方法调用失败。
setConnectRetryInterval
(int) setConnectRetryInterval: (int) count;

设置推流端重连间隔

Declared in KRtcEngine.h

支持版本: 6.0.0 及以上。

参数信息
参数名 类型 描述
count int 重连间隔
接口详情
  • 详情描述: 当 SDK 与服务器异常断开连接时,SDK 会尝试与服务器重连,通过此函数来设置两次重连间隔时间。

返回值:

  • 0(KErrorCodeCommonSuccess): 方法调用成功。
  • < 0: 方法调用失败。
getPushingStatus
(KRtcEnginePushStreamState) getPushingStatus: (NSString* _Nonnull) channelId;

获取当前直播推流状态。

Declared in KRtcEngine.h

支持版本: 6.0.0 及以上。

参数信息
参数名 类型 描述
channelId NSString* _Nonnull 标识通话的频道名称,长度在 64 字节以内的字符串。以下为支持的字符集范围(共 89 个字符):

  • 26 个小写英文字母 a-z

  • 26 个大写英文字母 A-Z

  • 10 个数字 0-9

  • 空格

  • "!", "#", "$", "%", "&", "(", ")", "+", "-", ":", ";", "<", "=", ".", ">", "?", "@", "[", "]", "^", "_", "{", "}", "|", "~", ","
接口详情
  • 详情描述: 获取指定频道的当前直播推流状态。

返回值:

  • 当前推流状态,具体请参考 PushStreamState。
enableAudio
(int) enableAudio;

启用音频模块。

Declared in KRtcEngine.h

支持版本: 6.0.0 及以上。

接口详情
  • 详情描述: 本方法可以启用音频模块(音频模块默认为开启状态)。该方法与 disableAudio 相对应,如果之前调用过 disableAudio 禁用了音频功能,可以用通过该方法来恢复。

  • 注意事项: 该接口只能在 startPush 之前调用,如果上一次直播调用过 disableAudio, 而本次直播需要开启音频功能,则需要调用该接口。

返回值:

  • 0: 方法调用成功。
  • <0: 方法调用失败。
disableAudio
(int) disableAudio;

关闭音频模块。

Declared in KRtcEngine.h

支持版本: 6.0.0 及以上。

接口详情
  • 详情描述: 关闭音频模块。该方法与 enableAudio 相对应,会禁用音频模块。

  • 注意事项: 该接口只能在 startPush 之前调用,如果确定本次直播全程是一个纯视频的直播,可以在 startPush 之前调用该接口,从而禁用音频模块,减少内存占用。在开播之后调用会导致直播流异常。

返回值:

  • 0: 方法调用成功。
  • <0: 方法调用失败。
setLiveAudioProfile
(void) setLiveAudioProfile: (NSString* _Nonnull) channelid  profile: (KRtcEngineLiveAudioProfile) profile;

设置音频编码参数。

Declared in KRtcEngine.h

参数信息
参数名 类型 描述
channelid NSString* _Nonnull 标识通话的频道名称,长度在 64 字节以内的字符串。以下为支持的字符集范围(共 89 个字符):

  • 26 个小写英文字母 a-z

  • 26 个大写英文字母 A-Z

  • 10 个数字 0-9

  • 空格

  • "!", "#", "$", "%", "&", "(", ")", "+", "-", ":", ";", "<", "=", ".", ">", "?", "@", "[", "]", "^", "_", "{", "}", "|", "~", ","
profile KRtcEngineLiveAudioProfile 设置采样率,码率,编码模式和声道数,详细定义见 LiveAudioProfile。
接口详情
  • 调用时机: 该方法需要在 startPush 之前设置好,startPush 之后设置不生效。

adjustRecordingSignalVolume
(int) adjustRecordingSignalVolume: (NSInteger) volume;

调节麦克风采集信号音量。

Declared in KRtcEngine.h

支持版本: 6.0.0 及以上。

参数信息
参数名 类型 描述
volume NSInteger 麦克风采集信号音量。取值范围为[0,100],其中:

  • 0: 静音。

  • 100:(默认)原始音量。
接口详情
  • 详情描述: 该方法可让用户调整本地麦克风采集信号的音量。

  • 调用时机: 该方法在加入频道前后都能调用。

  • 注意事项: 开启或关闭音频采集不会影响该音量。

返回值:

  • 0: 方法调用成功。
  • <0: 方法调用失败。
enableLocalAudio
(int) enableLocalAudio;

开启本地音频采集。

Declared in KRtcEngine.h

支持版本: 6.0.0 及以上。

接口详情
  • 详情描述:

    • 该方法可以开启本地音频采集,与 disableLocalAudio 相对应。
    • 当 App 加入频道时,它的语音功能默认是开启的。
  • 调用时机:

    • 该方法在加入频道前后均可调用。

返回值:

  • 0: 方法调用成功。
  • <0: 方法调用失败。
disableLocalAudio
(int) disableLocalAudio;

关闭本地音频采集。

Declared in KRtcEngine.h

支持版本: 6.0.0 及以上。

接口详情
  • 详情描述: 关闭本地音频采集。当 App 加入频道时,默认是开启麦克风采集功能的;该方法可以关闭麦克风采集,但是仍然会发送静音的音频数据,适用于直播过程中需要临时闭麦的场景。

  • 调用时机:

    • 该方法在加入频道前后均可调用。

返回值:

  • 0: 方法调用成功。
  • <0: 方法调用失败。
enableInEarMonitoring
(int) enableInEarMonitoring;

开启耳返功能。

Declared in KRtcEngine.h

支持版本: 6.0.0 及以上

接口详情
  • 详情描述: 用户可通过该方法打开耳返功能,该方法与 disableInEarMonitoring 相对应。

  • 调用时机:

    • 该方法在加入频道前后均可调用。
    • 切换用户身份时,需等到用户身份切换成功,即收到onClientRoleChanged回调后,再调用该方法,否则该方法的表现可能不符合预期。
  • 注意事项:

    • 用户必须使用有线耳机才能听到耳返效果。
  • 使用限制: 观众身份不支持对耳返进行设置。

返回值:

  • 0: 方法调用成功。
  • <0: 方法调用失败。
disableInEarMonitoring
(int) disableInEarMonitoring;

关闭耳返功能。

Declared in KRtcEngine.h

支持版本: 6.0.0 及以上

接口详情
  • 详情描述: 用户可通过该方法关闭耳返功能,该方法与 enableInEarMonitoring 相对应。

  • 调用时机:

    • 该方法在加入频道前后均可调用。
    • 切换用户身份时,需等到用户身份切换成功,即收到onClientRoleChanged回调后,再调用该方法,否则该方法的表现可能不符合预期。
  • 使用限制: 观众身份不支持对耳返进行设置。

返回值:

  • 0: 方法调用成功。
  • <0: 方法调用失败。
setInEarMonitoringVolume
(int) setInEarMonitoringVolume: (NSInteger) volume;

设置耳返音量。

Declared in KRtcEngine.h

支持版本: 6.0.0 及以上

参数信息
参数名 类型 描述
volume NSInteger 耳返音量。取值范围为[0,100],其中:

  • 0: 静音

  • 100:(默认)原始音量
接口详情
  • 详情描述: 用户可通过该方法设置耳返音量。

  • 调用时机: 该方法在加入频道前后都能调用。

  • 注意事项:

    • 当调整本地采集音量时,耳返音量会随之变化。
    • 开启或关闭耳返功能不会影响该音量。

返回值:

  • 0: 方法调用成功。
  • <0: 方法调用失败。
setLocalVoiceChanger
(void) setLocalVoiceChanger: (KRtcEngineVoiceEffectOption) voicechanger;

设置本地语音变声

Declared in KRtcEngine.h

参数信息
参数名 类型 描述
voicechanger KRtcEngineVoiceEffectOption 本地语音的变声选项
setLocalVoiceReverb
(void) setLocalVoiceReverb: (KRtcEngineReverbLevel) reverblevel;

设置本地音效混响

Declared in KRtcEngine.h

参数信息
参数名 类型 描述
reverblevel KRtcEngineReverbLevel 需要设置的音效混响
enableExternalAudioSource
(void) enableExternalAudioSource;

启用外部音频输入,该接口仅支持在 startPush 之前调用。

Declared in KRtcEngine.h

disableExternalAudioSource
(void) disableExternalAudioSource;

禁用外部音频输入

Declared in KRtcEngine.h

pushRawAudioFrame
(BOOL) pushRawAudioFrame: (ExternalAudioFrame*) frame;

推送外部音频帧

Declared in KRtcEngine.h

参数信息
参数名 类型 描述
frame ExternalAudioFrame* 外部音频帧
接口详情

返回值: 调用是否成功

enableAudioVolumeIndication
(int) enableAudioVolumeIndication: (int) interval;

启用用户音量提示。

Declared in KRtcEngine.h

参数信息
参数名 类型 描述
interval int 定期反馈音量的时间间隔,单位为毫秒。
接口详情
  • 详情描述: 该方法与 disableAudioVolumeIndication 相对应,定期向应用反馈当前说话的音量,调用该方法后,sdk 会按照设置的时间间隔触发 onAudioVolumeIndication 回调。

返回值: 调用是否成功 0: 成功, <0: 失败

disableAudioVolumeIndication
(int) disableAudioVolumeIndication;

禁用用户音量提示。

Declared in KRtcEngine.h

接口详情
  • 详情描述: 该方法与 enableAudioVolumeIndication 相对应,停止 sdk 向应用反馈当前说话者音量。

返回值: 调用是否成功 0: 成功, <0: 失败

enableVideo
(int) enableVideo;

启用视频模块。

Declared in KRtcEngine.h

接口详情
  • 详情描述: 本方法可以启用视频模块(视频模块默认为开启状态)。该方法与 disableVideo 相对应,如果之前调用过 disableVideo 禁用了视频功能,可以用通过该方法来恢复。 该方法不会开启camera,如果需要开启camera,请调用enableLocalVideo。

  • 注意事项: 该接口只能在 startPush 之前调用,如果上一次直播调用过 disableVideo, 而本次直播需要开启视频功能,则需要调用该接口。

返回值: 调用是否成功, 0: 成功, <0: 失败。

disableVideo
(int) disableVideo;

关闭视频模块。

Declared in KRtcEngine.h

接口详情
  • 详情描述: 关闭视频模块。该方法与 enableVideo 相对应,会禁用视频模块。

  • 注意事项: 该接口只能在 startPush 之前调用,如果确定本次直播全程是一个纯音频的直播,可以在 startPush 之前调用该接口,从而禁用视频模块,减少内存占用。在开播之后调用会导致直播流异常。

返回值: 调用是否成功, 0: 成功, <0: 失败。

enableLocalVideo
(int) enableLocalVideo;

开启本地视频采集,调用此方法会开启摄像头采集设备。

Declared in KRtcEngine.h

接口详情

返回值: 调用是否成功, 0: 成功, <0: 失败。

disableLocalVideo
(int) disableLocalVideo;

关闭本地视频采集。

Declared in KRtcEngine.h

接口详情
  • 详情描述: 关闭本地视频采集,调用此方法会停止摄像头采集设备,视频流会用黑屏数据代替。

返回值: 调用是否成功, 0: 成功, <0: 失败。

setVideoEncoderConfiguration
(int) setVideoEncoderConfiguration: (NSString*) channelId  videoEncoderConfig: (KRtcEngineVideoEncoderConfiguration* _Nonnull) videoEncoderConfig;

设置视频编码参数。

Declared in KRtcEngine.h

参数信息
参数名 类型 描述
channelId NSString* 频道ID。
videoEncoderConfig KRtcEngineVideoEncoderConfiguration* _Nonnull 视频编码参数。
接口详情

返回值: 调用是否成功, 0: 成功, <0: 失败。

bindLocalVideoView
(int) bindLocalVideoView: (KRtcEngineVideoCanvas* _Nullable) local;

初始化本端视频渲染视图。

Declared in KRtcEngine.h

参数信息
参数名 类型 描述
local KRtcEngineVideoCanvas* _Nullable 画布。
接口详情

返回值: 调用是否成功 0: 成功, <0: 失败。

unbindLocalVideoView
(int) unbindLocalVideoView: (KRtcEngineVideoCanvas* _Nullable) local;

解绑本端视频渲染视图。

Declared in KRtcEngine.h

参数信息
参数名 类型 描述
local KRtcEngineVideoCanvas* _Nullable 画布。
接口详情

返回值: 调用是否成功 0: 成功, <0: 失败。

setCameraCaptureMirror
(int) setCameraCaptureMirror: (KRtcEngineVideoMirrorMode) mode;

对自定义美颜之前的摄像头原始采集视频画面进行镜像

Declared in KRtcEngine.h

参数信息
参数名 类型 描述
mode KRtcEngineVideoMirrorMode 视频镜像。
接口详情

返回值: 调用是否成功 0: 成功, <0: 失败。

setCameraEncodeMirror
(int) setCameraEncodeMirror: (BOOL) enable;

对经过自定义美颜后的准备参与合流编码的摄像头路视频流进行镜像

Declared in KRtcEngine.h

参数信息
参数名 类型 描述
enable BOOL 视频是否镜像。
接口详情

返回值: 调用是否成功 0: 成功, <0: 失败。

setLocalRenderMode
(int) setLocalRenderMode: (KRtcEngineVideoRenderMode) rendermode  ismirror: (BOOL) ismirror;

对经过自定义美颜后的准备本地预览画面进行镜像

Declared in KRtcEngine.h

参数信息
参数名 类型 描述
rendermode KRtcEngineVideoRenderMode 视频显示模式。
ismirror BOOL 视频是否镜像。
接口详情

返回值: 调用是否成功 0: 成功, <0: 失败。

startPreview
(int) startPreview;

启动视频预览,调用该 API 前,需调用 enableLocalVideo 开启摄像头采集设备。

Declared in KRtcEngine.h

接口详情

返回值: 调用是否成功 0: 成功, <0: 失败。

stopPreview
(int) stopPreview;

停止预览。

Declared in KRtcEngine.h

接口详情

返回值: 调用是否成功 0: 成功, <0: 失败。

switchCamera
(int) switchCamera;

切换摄像头。

Declared in KRtcEngine.h

接口详情

返回值: 调用是否成功 0: 成功, <0: 失败。

startScreenCapture
(int) startScreenCapture: (NSString*) channelid;

开始屏幕共享

Declared in KRtcEngine.h

参数信息
参数名 类型 描述
channelid NSString* 频道ID
接口详情

返回值: 调用是否成功 0: 成功, <0: 失败

stopScreenCapture
(int) stopScreenCapture: (NSString*) channelid;

结束屏幕共享

Declared in KRtcEngine.h

参数信息
参数名 类型 描述
channelid NSString* 频道ID
接口详情

返回值: 调用是否成功 0: 成功, <0: 失败

enableExternalVideoSource
(void) enableExternalVideoSource;

启用外部视频输入

Declared in KRtcEngine.h

disableExternalVideoSource
(void) disableExternalVideoSource;

禁用外部视频输入

Declared in KRtcEngine.h

pushRawVideoFrame
(BOOL) pushRawVideoFrame: (ExternalVideoFrame*) frame;

推送外部视频帧

Declared in KRtcEngine.h

参数信息
参数名 类型 描述
frame ExternalVideoFrame* 外部视频帧
接口详情

返回值: 调用是否成功

setBeautyEffectOptions
(void) setBeautyEffectOptions: (BOOL) enable  options: (KRtcEngineBeautyOptions* _Nullable) options;

设置美颜效果选项

Declared in KRtcEngine.h

参数信息
参数名 类型 描述
enable BOOL 是否开启美颜
options KRtcEngineBeautyOptions* _Nullable 美颜参数
onBackground
(void) onBackground: (KRtcEngineBackgroundMode) mode;

设置 App 退后台触发的推流模式。

Declared in KRtcEngine.h

支持版本: 6.0.0 及以上。

参数信息
参数名 类型 描述
mode KRtcEngineBackgroundMode 后台推流模式
接口详情
  • 详情描述: 本方法可以用来设置 App 退后台触发的推流模式,当 APP 退后台时调用该方法通知 SDK 按指定的推流模式推音视频流。

onForeground
(void) onForeground;

通知 SDK APP 已经返回前台。

Declared in KRtcEngine.h

支持版本: 6.0.0 及以上。

接口详情
  • 详情描述: 如果 APP 退后台的时候调用了 onBackground 通知 SDK 设置了相应的推流模式,那么返回前台的时候需要调用该方法恢复退后台之前的推流状态。

startPushImage
(int) startPushImage: (NSString*) channelid  image: (NSData*) image;

启用图片推流

Declared in KRtcEngine.h

参数信息
参数名 类型 描述
channelid NSString* 频道ID
image NSData* JPEG 或者 PNG 图片数据, 图片宽高需要是偶数,iOS APP 编译时默认会把 PNG 格式图片压缩为非标准格式,所以当使用打包在 APP 内的 PNG 格式图片时,需要在 "Build Settings" 中将 "Compress PNG Files" 设置为 NO。
接口详情

返回值: 调用是否成功 0: 成功, <0: 失败

stopPushImage
(int) stopPushImage: (NSString*) channelid;

停止图片推流

Declared in KRtcEngine.h

参数信息
参数名 类型 描述
channelid NSString* 频道ID
接口详情

返回值: 调用是否成功 0: 成功, <0: 失败

addWatermark
(int) addWatermark: (NSData*) image  x: (float) x  y: (float) y  scale: (float) scale;

添加水印

Declared in KRtcEngine.h

参数信息
参数名 类型 描述
image NSData* 水印图片原始数据,仅支持 jpg 和 png 格式,宽高需要是偶数。
x float 水印左上角横坐标[0.0, 1.0];假设推流分辨率为:540 × 960,该字段设置为:0.1,则水印的实际像素横坐标为:540 × 0.1。
y float 水印左上角纵坐标[0.0, 1.0];假设推流分辨率为:540 × 960,该字段设置为:0.1,则水印的实际像素纵坐标为:960 × 0.1。
scale float 水印缩放比例(0.0, 1.0];假设推流分辨率为:540 × 960,该字段设置为:0.1,水印宽度为 540 × 0.1,水印高度会被自动计算。
接口详情
  • 详情描述: 设置指定的图片作为直播水印

返回值: 调用是否成功 >0: 成功,返回值表示当前添加的水印 ID,可以通过这个 ID 调用 RemoveWatermakkr 删除指定的水印, <0: 失败

removeWatermark
(int) removeWatermark: (int) watermarkid;

移除水印

Declared in KRtcEngine.h

参数信息
参数名 类型 描述
watermarkid int 水印 ID,成功调用 AddWatermark 时的返回值。
接口详情
  • 详情描述: 移除指定 ID 的水印

返回值: 调用是否成功 0: 成功, <0: 失败

startNetworkProbeTest
(int) startNetworkProbeTest;

开始网络质量检测

Declared in KRtcEngine.h

接口详情
  • 详情描述: 在直播过程中调用该方法会开启网络质量检测功能,每 2 秒回调一次 onNetworkQuality 报告当前网络质量。

返回值: 调用是否成功 0: 成功, <0: 失败

stopNetworkProbeTest
(int) stopNetworkProbeTest;

停止网络质量检测

Declared in KRtcEngine.h

接口详情
  • 详情描述: 调用该方法后会停止网络质量检测功能。

返回值: 调用是否成功 0: 成功, <0: 失败

getCurrentMediaTimestamp
(uint64_t) getCurrentMediaTimestamp;

获取当前媒体时间戳

Declared in KRtcEngine.h

接口详情
  • 详情描述: 获取当前媒体时间戳, 用于外部音视频帧中的timestamp。

返回值: 返回当前媒体时间戳。

sendSeiMessage
(int) sendSeiMessage: (NSString*) channelId  data: (NSData*) data  repeatCount: (int) repeatCount;

发送自定义的 SEI 消息

Declared in KRtcEngine.h

参数信息
参数名 类型 描述
channelId NSString* 频道ID
data NSData* 发送的数据,最大长度为 1000字节。
repeatCount int 发送数据次数
接口详情

返回值: 调用是否成功, 0: 成功, <0: 失败

setZoom
(int) setZoom: (CGFloat) distance;

调整摄像头的焦距

Declared in KRtcEngine.h

参数信息
参数名 类型 描述
distance CGFloat 焦距大小,取值范围:1 - 5,默认值建议设置为1即可
接口详情

返回值: 调用是否成功, 0: 成功, <0: 失败

toggletorch
(int) toggletorch: (BOOL) enable;

打开后置摄像头旁边的闪光灯

Declared in KRtcEngine.h

参数信息
参数名 类型 描述
enable BOOL true:打开;false:关闭。
接口详情

返回值: 调用是否成功, 0: 成功, <0: 失败

setWallClockTime
(int) setWallClockTime: (uint64_t) epochms;

设置时钟,用于计算直播延时。

Declared in KRtcEngine.h

参数信息
参数名 类型 描述
epochms uint64_t epoch 时钟,单位是毫秒。
接口详情

返回值: 调用是否成功, 0: 成功, <0: 失败

setRenderRotation
(int) setRenderRotation: (int) rotation;

设置本端视频预览旋转角度,该接口仅能够改变主播本地预览画面的方向,而不会改变观众端的画面效果。

Declared in KRtcEngine.h

参数信息
参数名 类型 描述
rotation int 取值为0、90、180和270(其他值无效),表示主播端摄像头预览视频的顺时针旋转角度。
接口详情

返回值: 调用是否成功, 0: 成功, <0: 失败

snapshot
(void) snapshot;

推流过程中本地截图

Declared in KRtcEngine.h

setMetaData
(int) setMetaData: (NSDictionary* _Nonnull) metadata;

设置自定义MetaData

Declared in KRtcEngine.h

参数信息
参数名 类型 描述
metadata NSDictionary* _Nonnull 非空metaData键值对
enableCustomVideoProcess
(int) enableCustomVideoProcess: (BOOL) enable  isUseNew: (BOOL) isUseNewTexture  isUseTextureId: (BOOL) isUseTextureId;

开启/关闭自定义视频处理

Declared in KRtcEngine.h

参数信息
参数名 类型 描述
enable BOOL 开关
isUseNewTexture BOOL true: 输出纹理使用第三方美颜生成的新纹理 false: 使用sdk的纹理
isUseTextureId BOOL true: 使用textureId false: 使用pixelbuffer

KRtcEngineDelegate

方法

KRtcEngine
(void) KRtcEngine: (KRtcEngine*) engine  channelId: (NSString*) channelId  didPushStreamStateChanged: (KRtcEnginePushStreamState) state  error: (KRtcEnginePushStreamError) error;

直播推流状态回调。

Declared in KRtcEngineDelegate.h

参数信息
参数名 类型 描述
engine KRtcEngine* KRtcEngine 对象。
channelId NSString* “频道 id。"
state KRtcEnginePushStreamState 当前推流状态,请参考 PushStreamState。
error KRtcEnginePushStreamError 推流初始时给出的错误码,请参考 PushStreamError。
接口详情
  • 详情描述: 直播推流状态改变时会回调该接口,发生错误时,会有相应错误码。

KRtcEngine
(void) KRtcEngine: (KRtcEngine*) engine  onNetworkQuality: (NSString*) channelId  uid: (NSString*) userId  txQuality: (KRtcEngineNetworkQuality) txQuality  rxQuality: (KRtcEngineNetworkQuality) rxQuality;

报告当前网络质量。

Declared in KRtcEngineDelegate.h

参数信息
参数名 类型 描述
engine KRtcEngine* KRtcEngine 对象。
channelId NSString* “频道 id。"
userId NSString* 用户 id。
txQuality KRtcEngineNetworkQuality 上行网络质量。
rxQuality KRtcEngineNetworkQuality 下行网络质量。
接口详情
  • 详情描述: 当调用 startNetworkProbeTest 方法后,会每 2秒 回调一次该方法报告当前网络质量。

KRtcEngine
(void) KRtcEngine: (KRtcEngine*) engine  onPushStats: (KRtcEnginePushStats*) stats;

报告当前直播推流相关指标。

Declared in KRtcEngineDelegate.h

参数信息
参数名 类型 描述
engine KRtcEngine* KRtcEngine 对象。
stats KRtcEnginePushStats* 推流指标。
接口详情
  • 详情描述: 直播推流成功后,会每 2秒 回调一次该方法报告当前推流相关指标。

KRtcEngine
(void) KRtcEngine: (KRtcEngine*) engine  onAudioVolumeIndication: (NSArray<KRtcEngineAudioVolumeInfo*>*) audiovolumeinfo;

用户音量提示回调。

Declared in KRtcEngineDelegate.h

参数信息
参数名 类型 描述
engine KRtcEngine* KRtcEngine 对象。
audiovolumeinfo NSArray<KRtcEngineAudioVolumeInfo*>* 用户音量信息,直播场景只有本端音量信息。
接口详情
  • 详情描述: 该回调默认禁用,您可以通过 enableAudioVolumeIndication 开启,开启后,SDK 会按照在 enableAudioVolumeIndication 中设置的时间间隔触发该回调。

KRtcEngine
(void) KRtcEngine: (KRtcEngine*) engine  channelId: (NSString*) channelId  didOccurWarning: (KRtcEngineWarningCode) warningCode;

发生警告回调。

Declared in KRtcEngineDelegate.h

支持版本: 6.0.0 及以上

参数信息
参数名 类型 描述
engine KRtcEngine* SDK 实例。
channelId NSString* 房间 ID。
warningCode KRtcEngineWarningCode 警告代码,详细定义见 KRtcEngineWarningCode。
接口详情
  • 详情描述: 该回调方法表示 SDK 运行时出现了警告。通常情况下,SDK 上报的警告信息 App 可以忽略,SDK 会自动恢复。

KRtcEngine
(void) KRtcEngine: (KRtcEngine*) engine  channelId: (NSString*) channelId  didOccurError: (KRtcEngineErrorCode) errorCode;

发生错误回调。

Declared in KRtcEngineDelegate.h

支持版本: 6.0.0 及以上

参数信息
参数名 类型 描述
engine KRtcEngine* SDK 实例
channelId NSString* 房间 ID
errorCode KRtcEngineErrorCode 错误代码,详细定义见 KRtcEgnineErrorCode。
接口详情
  • 详情描述: 表示 SDK 运行时出现了错误。通常情况下,SDK 上报的错误意味着 SDK 无法自动恢复,需要 App 干预或提示用户。

KRtcEngine
(void) KRtcEngine: (KRtcEngine*) engine  didReceivedReplayKitClientDidDisconnectWithError: (NSError*) error;

屏幕分享发生错误回调。

Declared in KRtcEngineDelegate.h

参数信息
参数名 类型 描述
engine KRtcEngine* SDK 实例
error NSError*
接口详情
  • 详情描述: 表示 SDK 屏幕分享运行时出现了错误。

KRtcEngine
(void) KRtcEngine: (KRtcEngine*) engine  didOnSnapshot: (UIImage*) image;

推流过程中本地截图回调。

Declared in KRtcEngineDelegate.h

参数信息
参数名 类型 描述
engine KRtcEngine* SDK 实例
image UIImage* 截图保存对象
didOpenCameraSuccess
(void) didOpenCameraSuccess: (KRtcEngine*) engine;

打开摄像头成功回调。

Declared in KRtcEngineDelegate.h

参数信息
参数名 类型 描述
engine KRtcEngine* SDK 实例
KRtcEngine
(void) KRtcEngine: (KRtcEngine*) engine  didStartVideoEncoder: (NSString*) channelId;

视频编码器启动回调。

Declared in KRtcEngineDelegate.h

参数信息
参数名 类型 描述
engine KRtcEngine* SDK 实例
channelId NSString* 房间 ID
KRtcEngine
(int) KRtcEngine: (KRtcEngine*) engine  onProcessVideoFrame: (KRtcEngineRawVideoFrame* _Nonnull) srcFrame  dstframe: (KRtcEngineRawVideoFrame* _Nonnull) dstframe  rotation: (int32_t) rotation;

用于对接第三方美颜组件的视频处理回调

Declared in KRtcEngineDelegate.h

参数信息
参数名 类型 描述
engine KRtcEngine* SDK 实例
srcFrame KRtcEngineRawVideoFrame* _Nonnull 用于承载采集到的摄像头画面
dstframe KRtcEngineRawVideoFrame* _Nonnull 用于接收第三方美颜处理过的视频画面
rotation int32_t 采集视频角度
接口详情

返回值: 0: 使用第三方美颜。-1: 使用原始摄像头画面

onGLContextDestroyed
(void) onGLContextDestroyed: (KRtcEngine*) engine;

SDK 内部的 OpenGL 环境的销毁通知

Declared in KRtcEngineDelegate.h

参数信息
参数名 类型 描述
engine KRtcEngine* SDK 实例
KRtcEngine
(void) KRtcEngine: (KRtcEngine*) engine  onFirstLocalVideoFramePublished: (uint64_t) elapse;

首帧视频发送成功的回调通知

Declared in KRtcEngineDelegate.h

参数信息
参数名 类型 描述
engine KRtcEngine* SDK 实例
elapse uint64_t 从本地开始推流到发生此事件过去的时间(毫秒)